//全局变量
var url="./data/music.json";//json文件路径
var musicGroup=[];//30首音乐集合
var queue=new createjs.LoadQueue();//加载对象
var musicUrlGroup=[];
var currentQuestionId=0;
var questionSelect=$(".questionSelect");
var score=0;//分数
var userAnswer;//用户选择的答案ID
var musicAnswer//问题的答案id
var audio=new Audio();
var answeringTime;
var sec=60;//游戏总时间
var gameTimes=$("#gameTimes");
var time;//定时器句柄
var num=[];
//var lunboFlag=false;
//初始化
randMusic(0,50);//随机加载30首歌曲



//监听事件
$(".index_startBox").click(function(){
	$(".startPage").hide();
	$(".answerBox").show(300);
	lunboFlag=true;
	lunbo(true);
	$(".selectABox").show(300);
	$(".selectBBox").show(300);
	$(".selectCBox").show(300);
	$(".mouthMiniBox").show(300);
	showQuestion()//currentQuestionId默认值为0，初始化第一题
	c($(".resultPage"))
	time=setInterval(function(){
		sec--;
		gameTimes.text(sec)
		if(sec<=0){
			lunboFlag=false;
			lunbo(false);
			$(".answerBox").hide();
			$(".selectABox").hide();
			$(".selectBBox").hide();
			$(".selectCBox").hide();
			$(".mouthMiniBox").hide();
			$(".resultPage").show();
			audio.pause();
			c("结束了")
			gameOver();
			clearInterval(time);
			
		}
	},1000)
})


questionSelect.click(function(){
	var currentTime=new Date().getTime();
	if((currentTime-answeringTime)<2000){

		$(".mesBox").show(500);
		setTimeout(function(){
			$(".mesBox").hide(500);
		},1000)
		return;
	}
	userAnswer=$(this).index()-6;//取当前用户所选项
	c("用户所选"+userAnswer)
	if(userAnswer==musicAnswer){
		score++;		
		userAnswer=-1;
		$(".gouBox").css({animation: "gouAndCha 0.5s linear forwards",display:"block"})
		c("答对啦")		
	}else{
		$(".chaBox").css({animation: "gouAndCha 0.5s linear forwards",display:"block"})
	}
	currentQuestionId++;
	showQuestion();	
	c(score)
	
})


$(".againBox").click(function(){
	gameStart();
})
//启动游戏函数
function gameStart(){
	randMusic(0,50);//随机加载30首歌曲
	$(".resultPage").hide();
	sec=60;
	score=0;
	
	$(".muscPage1").hide();
	$(".muscPage2Box").hide();
	$(".muscPage3").hide();
	$(".muscPage4").hide();
	$(".muscPage5").hide();
	$(".muscPage6").hide();
}

//统计结果函数
function gameOver(){
	var musicCount=$("#musicCount");
	var resultText=$("#resultText");
	musicCount.text("猜中"+score+"首");
	var text;
	var huangjin=score>=0&&score<=10;
	var bojin=score>=11&&score<=20;
	var zuanshi=score>=21&&score<=30;
	if(huangjin){
		text="失敬失敬！十二星座黄金“音”斗士，你是哪一宫？向你的基友们寄送挑战书吧！"
	}else if(bojin){
		text="说，你是不是隐匿多年的酷狗会员？对音乐的涉猎有点广泛啊！快晒出段位，接受世人的瞻仰吧！"
	}else if(zuanshi){
		text="是天性压抑了太久，还是一个人寂寞到癫狂？我们的题库都不够你做了啊！行走的中华小曲库，快晒结果独孤求败吧！"
	}
	resultText.text(text);
}


//题目数据显示到页面函数

function showQuestion(){
	//选项赋值到页面上
	var questionSpan=$(".questionSpan");
	var musicAudio=musicGroup[currentQuestionId].audio;
	var musicItem=musicGroup[currentQuestionId].item;
	musicAnswer=musicGroup[currentQuestionId].answer;
	questionSpan.eq(0).text(musicItem[0]);
	questionSpan.eq(1).text(musicItem[1]);
	questionSpan.eq(2).text(musicItem[2]);
	audio.src=musicAudio;
	audio.loop="loop";//循环播放
	audio.play();
	answeringTime=new Date().getTime();
	
	setTimeout(function(){
		$(".gouBox").hide()
		$(".chaBox").hide()
	},1000)
	c("答案"+musicAnswer)
}

//随机抽取并加载歌曲函数	直接返回到元素
function randMusic(minNum,maxNum){
	musicGroup.splice(0,musicGroup.length);
	for(let i=0;i<30;i++){
		$.ajax(url,{
		    type:"get",
				data:{					
			},
			async:false,//这里要同步
			dataType:"json",
			success:function(res){
//				var num=rand(minNum,maxNum)
				for(var k=0;num.length<30;k++){
					var n=rand(minNum,maxNum)
					for(var j=0;j<=num.length;j++){
						if(num.indexOf(n)==-1){
							num.push(n);
						}
					}
					
				}
				musicGroup.push({
					"audio": res[num[i]].audio,
					"item": [
					    res[num[i]].item[0],
					    res[num[i]].item[1],
					    res[num[i]].item[2]
					],
					"answer": res[num[i]].answer
				})
				musicUrlGroup.push(res[num[i]].audio);
			},
			error:function(err){
				c(err);
			},
			complete:function(com){
//				c(com);
			}
					
		});
	}
	musicUrlGroup.sort(function(){
		return Math.random()-0.5;
	})
	queue.loadManifest(musicUrlGroup);//歌曲URL集合加入到该方法队列				
	//加载进度事件
	var progress;
	queue.on("progress",function(event){
		var progress=Math.floor((event.progress*100).toFixed(2))+"%";
//		c(progress)
		$("#loadNum").text(progress)
	},this)
	//完成加载
	queue.on("complete",function(event){
		$(".loadPage").slideUp()
		$(".startPage").slideDown()
	},this)
//	开始加载
	queue.load();
}

//答题背景轮播
function lunbo(flag){
	if(flag){
		var t,index=0;
		$(".question").eq(0).show()
		t=setInterval(function(){
			if(index>=$(".question").length-1){
				index=-1;
			}
			
			$(".question").eq(index).slideUp(300);
			index++;
			$(".question").eq(index).slideDown(300);
			if(lunboFlag==false){
				c("要停止了")
				clearInterval(t)
			}
		},6000)
	}
}
//取随机数函数
function rand(min,max){
	var num=Math.random();
	num=num*(max-min)+min;
	num=Math.floor(num);
	return num;
}
//控制台输出函数
function c(text){
	console.log(text);
}